<%-- 使用 page 指令的 language 属性设置采用哪种语言翻译JSP源文件 --%>
<%@ page language="java" %>
<%-- 使用 page 指令的 pageEncoding 属性设置采用哪种字符编码来读取JSP源文件 --%>
<%@ page pageEncoding="UTF-8" %>
<%-- 使用 page 指令的 contentType 属性设置未来向客户端发送响应时响应头中 content-type 字段的值 --%>
<%@ page contentType="text/html;charset=UTF-8" %>
<%-- 使用 page 指令的 import 语句导入指定的类或接口 --%>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.time.LocalDate" %>
<%@ page import="com.kaifamiao.jsp.Student" %>

<html>
    <head>
        <title>Expression Language</title>
        <style type="text/css">
            .wrapper {
                border: 1px solid blue ;
                margin: 5px ;
                padding: 5px ;
            }
        </style>
    </head>
    <body>

        <h3>Expression Language</h3>
        <p>表达式语言</p>

        <div class="wrapper">${ 1 + 1 }</div>

        <%-- 通过JSP脚本创建List集合并将其设置到reqeust属性中--%>
        <%
            List<String> list = new ArrayList<>();
            list.add( "李白" );
            list.add( "岑参" );
            list.add( "辛弃疾" );
            // 在 request 中添加属性
            request.setAttribute( "names" , list );
        %>

        <%-- 通过JSP表达式可以直接访问在JSP脚本中定义的变量--%>
        <div class="wrapper"> <%= list %> </div>

        <%-- 使用 表达式语言 从 request 的获取指定名称的属性 --%>
        <div class="wrapper"> ${ names } </div>

        <div class="wrapper"> ${ names[ 0 ] } </div>
        <div class="wrapper"> ${ names[ 1 ] } </div>
        <div class="wrapper"> ${ names[ 2 ] } </div>

        <%-- 通过JSP脚本创建Student并将其设置到reqeust属性中--%>
        <%
            Student s = new Student( 1 , "白居易" , "男" , LocalDate.of(772,2,28) );
            request.setAttribute( "stu" , s );
        %>
        <%-- 通过JSP表达式可以直接访问在JSP脚本中定义的变量--%>
        <div class="wrapper">
            <%= s.getId() %>
            <%= s.getName() %>
            <%= s.getGender() %>
            <%= s.getBirthdate() %>
        </div>

        <%-- 使用 表达式语言 从 request 的获取指定名称的属性 --%>
        <div class="wrapper">
            ${ stu.id } ,  ${ stu.name } , ${ stu.gender } , ${ stu.birthdate }
        </div>

        <div class="wrapper">
            <h4>使用 表达式语言 获取当前的请求路径</h4>
            ${ pageContext.request.requestURI }
        </div>

        <div class="wrapper">
            <h4>使用JSP表达式获取当前的请求路径</h4>
            <%= ((HttpServletRequest)(pageContext.getRequest())).getRequestURI() %>
        </div>

    </body>
</html>
